cdf2idl, 'COARE_soundings_goodset.nc' @COARE_soundings_goodset.idl qv = RH/100.*mixrat(T,p) Tvabs = (T+273.2)*(1+0.61*qv) Tv = Tvabs - 273.2 dz = (287.*Tvabs/9.8/p)*5 ;;; dp = 5mb z = total(dz, 2, /cum) s = entropy(T,p,qv) ;;; test sdry = entropy(T,p,qv*1e-5) ssat = entropy(T,p,mixrat(T,p)) ;;;; Plot a few plot, s(0,*), z(0,*)/1000., ytit='z (km)', xtit='dry, actual, and saturation entropy', xra=[100,300], tit='10 sondes' oplot, sdry(0,*), z(0,*)/1000., lines=1 oplot, ssat(0,*), z(0,*)/1000., lines=2 for isond = 0,10 do $ oplot, s(isond,*), z(isond,*)/1000., color=5+isond*250/10 for isond = 0,10 do $ oplot, sdry(isond,*), z(isond,*)/1000., lines=1, color=5+isond*250/10 for isond = 0,10 do $ oplot, ssat(isond,*), z(isond,*)/1000., lines=2, color=5+isond*250/10 ;;; Pick one sounding, call it "env" e Te = T(0,*) qe = qv(0,*) pe = p(0,*) se = s(0,*) ;;; No, use the mean s and q Te = total(T,1)/1726. qe = total(qv,1)/1726. se = total(s,1)/1726. ;;;; Lift surface parcel, conserving entropy and total water invert_s, se(0),pe,qe(0), Tp,qvp Tvp = (Tp+273.2)*(1+0.61*qvp) - 273.2 Tve = (Te+273.2)*(1+0.61*qe) - 273.2 ;;; The density temperature includes condensate loading Trhop = (Tp+273.2) *(1+qvp/0.622)/(1+qe(0)) -273.2 plot, Tp-Te, -pe, tit='lifted parcel Tp-Te, Tvp-Tve, and Trhop-Tve', ytit='-p (mb)', xtit='K', xra=[-2,5] oplot, Tvp-Tve, -pe, lines=1 oplot, Trhop-Tve, -pe, lines=2 ver,0 plot, 9.8*(Tp-Te)/Tvabs(0,*), z(0,*)/1000, tit='Buoyancy', ytit='z (km)', xtit='m s!U-2!N or J/kg', xra=[-0.2, 0.2] oplot, 9.8*(Tvp-Tve)/Tvabs(0,*), z(0,*)/1000, lines=1 oplot, 9.8*(Trhop-Tve)/Tvabs(0,*), z(0,*)/1000, lines=2 ver,0 ;;; Downdraft: plenty of water, conserve entropy ;invert_s, se(40),pe(0:40),qe(40), Tdownp,qdownp ;plot, Tdownp-Te, -pe(0:40), tit='rainy downdraft parcel Tp-Te' ;;; Lifted Index Te500 = T(*,100) ;;; 500mb invert_s, s(*,0),500.,qv(*,0), Tp500,qvp500 LI = Te500-Tp500 thetae = theta_e(T,p,q) ;;;;; SST CHANGE TYPE THINKING +1K qv1 = RH/100.*mixrat(T+1,p) s1 = entropy(T+1,p,qv1) invert_s, s1(0,0),pe,qv1(0,0), Tp1,qvp1 plot, tp1-tp, z(0,*)/1000, tit='parcel T change: initial T+1K, RH=const', ytit='z (km)', xtit='Tp over warmer SST', $ yra=[0,13]\ ;;; CAPE b = 9.8*(Tp-Te)/Tvabs(0,*) dzz = dz(0,*) hlp, total((b>0)*dzz) ;;; CAPE +1K b = 9.8*(Tp1-Te)/Tvabs(0,*) hlp, total((b>0)*dzz) ;;;;;;;;;;; entraining plume buoyancy, mean sounding sde = entropy(Te,pe,qe*1e-5) ssate = entropy(Te,pe,mixrat(Te,pe)) ;;;; Plot tripod plot, se, z(0,*)/1000., ytit='z (km)', xtit='dry, actual, and saturation entropy', $ xra=[100,300], tit='mean sounding' oplot, sde, z(0,*)/1000., lines=1 oplot, ssate, z(0,*)/1000., lines=2 ;;;; Now entrain eps = 1./100 ;;; fractional entrainment rate per mb M0 = 1. ;;; unit mass flux at cloud base dp = 5 ;; mb ;;; Entrainment mixes q and s M = M0 * exp((1005-pe)*eps) Mq = (M0*qe[0]) + cumulate(eps*dp *M*qe) Ms = (M0*se[0]) + cumulate(eps*dp *M*se) qplume = Mq/M splume = Ms/M !p.multi=[0,2,1] plot, qe, z(0,*)/1000., tit='q of environment and plume' oplot, qplume, z(0,*)/1000., color=250 plot, se, z(0,*)/1000., ytit='z (km)', xtit='dry, actual, and saturation entropy', $ xra=[100,300], tit='mean sounding' oplot, sde, z(0,*)/1000., lines=1 oplot, ssate, z(0,*)/1000., lines=2 oplot, splume, z(0,*)/1000., color=250
You need to enable Javascript in your browser to edit pages.
help on how to format text